Zapnuti/vypnuti NumLock na pocitacich Compaq s Win 98

Otázka od: horky@cominn.cz

24. 5. 2004 13:36

Zdravim vsechny !
Pro zapnuti/vypnuti klavesy NumLock pouzivam nize uvedenou procedurku. Tato
bezvadne funguje na Win od 98 az po XP, zkouseno na stolnich pocitacich i na
notebooku.
Ovsem narazil jsem na starsi pocitace znacky Compaq s Win 98, kde prepinani
NumLocku touto procedurkou nefunguje. Neudela se chyba, ale ani se NumLock
nezapne. Nemate nekdo radu, zkusenost, nejakou uplne jinou proceduru, kterou by
slo programove ten NumLock zapnout ?
Pouzivame totiz programovatelne klavesnice, bezna neni k pocitaci vubec
pripojena a NumLock potrebujeme mit zapnuty.
Diky za kazdou radu.
--
S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
[mailto:horky@cominn.cz]

Pro ukazku:

procedure SetKeyState(Key: Integer; TurnOn: Boolean);
var ks: TKeyboardState;
begin
  case Win32Platform of
    VER_PLATFORM_WIN32_WINDOWS: // Win95/98/ME
      begin
        GetKeyboardState(ks);
        ks[Key] := Ord(TurnOn);
        SetKeyboardState(ks)
      end;
    VER_PLATFORM_WIN32_NT: // WinNT/2000/XP
      begin
        if Odd(GetKeyState(Key)) <> TurnOn then
        begin
          keybd_event(Key, MapVirtualkey(Key,0), KEYEVENTF_EXTENDEDKEY, 0); //
simulate key press
          keybd_event(Key, MapVirtualkey(Key,0), KEYEVENTF_EXTENDEDKEY or
KEYEVENTF_KEYUP, 0); // simulate key release
        end;
      end
  end;
end;